package com.hsd.znsh.service;

import com.hsd.znsh.entity.Monitor;
import com.hsd.znsh.entity.Opinion;
import com.hsd.znsh.entity.SensorGroup;
import com.hsd.znsh.entity.User;
import com.hsd.znsh.pojo.input.APPRegisterUser;
import com.hsd.znsh.pojo.input.ForgetPasswordPhone;
import com.hsd.znsh.pojo.input.PCRegisterUser;
import com.hsd.znsh.pojo.input.UserInfoInput;
import com.hsd.znsh.pojo.output.OpinionVO;
import com.hsd.znsh.pojo.output.UserInfoVO;
import com.hsd.znsh.pojo.output.UserVO;
import com.hsd.znsh.pojo.query.OpinionQuery;
import com.hsd.znsh.pojo.query.UserQuery;
import org.springframework.data.domain.Pageable;

import java.util.List;
import java.util.Map;

public interface UserService extends BaseService {

    List<Map> getManagerUserRoleList();

    long getUserListTotalPages(UserQuery userQuery,Integer userId);

    List<UserVO> getUserList(Pageable pageable, UserQuery userQuery,Integer userId);

    List<UserVO> getUserList(UserQuery userQuery);

    UserInfoVO getUserInfo(Integer id);

    User addUserInfo(UserInfoInput userInfoInput);

    void updateUserInfo(UserInfoInput userInfoInput);

    void deleteUser(Integer userId);

    User registerPCUser(PCRegisterUser pcRegisterUser);

    User registerAPPUser(APPRegisterUser appRegisterUser);

    Opinion feedback(User user, Opinion opinion);

    long getOpinionListTotalPages(OpinionQuery opinionQuery);

    List<OpinionVO> getOpinionList(Pageable pageable,OpinionQuery opinionQuery);

    OpinionVO getOpinionInfo(Integer id);

    void deletedOpinion(Integer id);

    User forgetPassword(ForgetPasswordPhone forgetPasswordPhone);

    void assignHost(String managerName,String ids);

    User findAppUserByUsername(String username,String password);

}
